<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:fn="http://java.sun.com/jsf/functions"
	xmlns:p="http://primefaces.org/ui"
	xmlns:c="http://java.sun.com/jsp/jstl/core"
	template="web/templates/ui.xhtml">

	<ui:define name="title">
		<h:outputText value="Listado de Registradores" />
	</ui:define>
	<ui:define name="sidebar">
		<div class="widget">
			<div class="title">
				<div class="inner">
					<h3>
						<h:outputText value="Menú" />
					</h3>
				</div>
			</div>
			<!-- MENU PERFIL ADMINISTADOR -->
			<ui:include src="menu.xhtml" />
		</div>
	</ui:define>
	<ui:define name="content">
		<div class="page-header">
			<h3>
				<h:outputText value="Registrador" />
			</h3>
		</div>
		<div class="subTitle">
			<ol class="breadcrumb">
				<li><a href="index.jsf"><span
						class="glyphicon glyphicon-home"></span></a></li>
				<li class="active">Búsqueda</li>
			</ol>
		</div>
		<div class="gridContent">
			<div class="inner">
				<h:form id="form">
				<p:messages id="messages" redisplay="false" />
					<div class="row">
						<div class="col-sm-12 form-group">
							<p:outputLabel id="lblCenso" value="Censo:" for="cboCenso" />
							<h:selectOneMenu styleClass="form-control" id="cboCenso"
								label="Text 3" value="#{responsableListadoService.cboCenso}">
								<f:selectItem itemLabel="Todos" itemValue="-1" noSelectionOption="true" />
								<f:selectItems value="#{responsableListadoService.listaCensos}" />
								<p:ajax listener="#{responsableListadoService.onCensoChange}" />
							</h:selectOneMenu>
						</div>
					</div>
					<div class="row">
						<div class="col-sm-4 form-group">
							<p:outputLabel for="txtDNI" value="Documento de Identidad:" />
							<div class="input-group">						
								<p:inputText id="txtDNI" 
									value="#{responsableListadoService.txtDocumento}"
									maxlength="8"
				                    converterMessage="El campo 'Documento de Identidad' solo acepta números."
				                    onkeyup="$(this).val($(this).val().replace(/[^0-9]/g, ''));">
				                </p:inputText> 
							</div>
						</div>
						<div class="col-sm-4 form-group">
							<p:outputLabel for="cboEstado" value="Estado del Registrador:" />
							<h:selectOneMenu id="cboEstado"
								value="#{responsableListadoService.cboEstado}"
								styleClass="form-control">
								<f:selectItem itemLabel="Todos" itemValue="-1"
									noSelectionOption="true" />
								<f:selectItems
									value="#{responsableListadoService.listaEstadoResponsable}"
									var="estadoResponsable" itemLabel="#{estadoResponsable.nombre}"
									itemValue="#{estadoResponsable.id}"></f:selectItems>
							</h:selectOneMenu>
						</div>
						<div class="col-sm-4 form-group">
							<p:outputLabel for="cboTipoFinalizacion" value="Tipo Finalización del Censo:" />
							<h:selectOneMenu id="cboTipoFinalizacion" value="#{responsableListadoService.cboTipoFinalizacion}"	styleClass="form-control">
								<f:selectItem itemLabel="Todos" itemValue="-1" noSelectionOption="true" />
								<f:selectItem itemLabel="Automático" itemValue="A" />
								<f:selectItem itemLabel="Manual" itemValue="M" />
							</h:selectOneMenu>
						</div>
					</div>
					<div class="row">
						<div class="col-sm-4 form-group">
							<p:outputLabel value="Apellido Paterno:" for="txtApePat" />
							<p:inputText id="txtApePat"
								value="#{responsableListadoService.txtApePat}"></p:inputText>
						</div>
						<div class="col-sm-4 form-group">
							<p:outputLabel value="Apellido Materno:" for="txtApeMat" />
							<p:inputText id="txtApeMat"
								value="#{responsableListadoService.txtApeMat}"></p:inputText>
						</div>
						<div class="col-sm-4 form-group">
							<p:outputLabel value="Nombre(s):" for="txtNombres" />
							<p:inputText id="txtNombres"
								value="#{responsableListadoService.txtNombres}"></p:inputText>
						</div>
					</div>

					<div class="row">
						<div class="col-sm-12 form-group">
							<p:outputLabel for="cboEntidad" value="Entidad:" />
							<h:selectOneMenu id="cboEntidad"
								value="#{responsableListadoService.cboEntidad}"
								styleClass="form-control">
								<f:selectItem itemLabel="Todos" itemValue="-1"
									noSelectionOption="true" />
								<f:selectItems value="#{responsableListadoService.listaEntidades}" var="entidad" itemLabel="#{entidad.nombre}" itemValue="#{entidad.id}" />
							</h:selectOneMenu>
						</div>
					</div>

					<div class="row">
						<div class="col-sm-4 form-group">
							<p:outputLabel for="departamento" value="Departamento" />
							<h:selectOneMenu id="departamento"
								value="#{responsableListadoService.responsable.ubigeoDepartamento}"
								styleClass="form-control">
								<f:selectItem itemLabel="Todos" itemValue="00"
									noSelectionOption="true" />
								<p:ajax listener="#{responsableListadoService.onDepartamentoChange}"
									update="cboProv,cboDis" />
								<f:selectItems value="#{responsableListadoService.listaDepartamentos}"
									var="departamento" itemLabel="#{departamento.descripcion}"
									itemValue="#{departamento.codigo}" />
							</h:selectOneMenu>
						</div>
						<div class="col-sm-4 form-group">
							<p:outputLabel for="cboProv" value="Provincia" />
							<h:selectOneMenu id="cboProv"
								value="#{responsableListadoService.responsable.ubigeoProvincia}"
								styleClass="form-control">
								<f:selectItem itemLabel="Todos" itemValue="00"
									noSelectionOption="true" />
								<p:ajax listener="#{responsableListadoService.onProvinciaChange}"
									update="cboDis" />
								<f:selectItems value="#{responsableListadoService.listaProvincias}"
									var="provincia" itemLabel="#{provincia.descripcion}"
									itemValue="#{provincia.codigo}" />
							</h:selectOneMenu>
						</div>
						<div class="col-sm-4 form-group">
							<p:outputLabel for="cboDis" value="Distrito" />
							<h:selectOneMenu id="cboDis"
								value="#{responsableListadoService.responsable.ubigeoDistrito}"
								styleClass="form-control">
								<f:selectItem itemLabel="Todos" itemValue="00"
									noSelectionOption="true" />
								<f:selectItems value="#{responsableListadoService.listaDistritos}"
									var="distrito" itemLabel="#{distrito.descripcion}"
									itemValue="#{distrito.codigo}" />
							</h:selectOneMenu>
						</div>
					</div>
					<div class="btnAction row no-gutter">						
						<div class="text-right">
							<p:commandButton styleClass="btn btn-success" style="padding: 10px;" icon="ui-menuitem-icon ui-icon fa fa-plus" iconPos="right"
								value="Crear Nuevo"	action="responsables_registro.jsf">
							</p:commandButton>
							&nbsp;&nbsp;		
							<p:commandButton update="singleDT " styleClass="btn btn-success" icon="ui-menuitem-icon ui-icon fa fa-search" iconPos="right"
								value="Buscar"
								actionListener="#{responsableListadoService.buscarResponsables}">
							</p:commandButton>
							<p:commandButton update=":form" styleClass="btn btn-view" 
								value="Limpiar"
								actionListener="#{responsableListadoService.limpiarResponsable}">
								<!-- <p:ajax update=":form" resetValues="true" /> -->
							</p:commandButton>
						</div>
					</div>
					
					<!--  Grilla resultante de la búsqueda -->
					<p:dataTable id="singleDT" var="responsable" value="#{responsableListadoService.listaResponsables}" widgetVar="responsableTable"
						emptyMessage="No se han encontrado registros" rows="20"	paginator="true"
						paginatorPosition="bottom"
						paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
						currentPageReportTemplate="Total Registros : {totalRecords}"
						rowKey="#{responsable.nroDocumento}">

						<p:column style="width:70px;" sortBy="#{responsable.nroDocumento}">
							<f:facet name="header">
								DNI
								</f:facet>
							<div style="text-align: center;">#{responsable.nroDocumento}</div>
						</p:column>

						<p:column headerText="Nombre">
							<h:outputText value="#{responsable.nombreCompleto}" />
						</p:column>

						<p:column headerText="Ap. Paterno">
							<h:outputText value="#{responsable.apellidoPaterno}" />
						</p:column>

						<p:column headerText="Ap. Materno">
							<h:outputText value="#{responsable.apellidoMaterno}" />
						</p:column>

						<p:column headerText="Entidad">
							<h:outputText value="#{responsable.nombreEntidad}">
							</h:outputText>
						</p:column>
						
						<p:column headerText="Censo">
							<h:outputText value="#{responsable.censo.censo}">
							</h:outputText>
						</p:column>

						<p:column headerText="Estado Registrador">
							<h:outputText value="#{responsable.estadoResponsable}">
							</h:outputText>
						</p:column>
						
						<p:column style="text-align: center; width:100px;">
							<f:facet name="header">
								Acciones
							</f:facet>
							<c:if test="#{!responsableListadoService.soloConsulta}">
								<h:link id="responsable" 
										value="#{responsable.idEstadoResponsable eq '4' or responsable.idEstadoResponsable eq '5' or responsable.censo.estadoRegistro eq 'N' ?'Ver':'Editar'}"
										outcome="responsables_registro">
										<f:param name="responsable_id"	value="#{responsable.idResponsable}" />
									</h:link>
									<br/>
								<p:commandLink update="singleDT :form:messages" id="deshabilitar"
									value="Dar de baja"
									rendered="${3 >= responsable.idEstadoResponsable and responsable.censo.estadoRegistro eq 'S'}"
									action="#{responsableListadoService.deshabilitarResponsable(responsable)}">
									<p:confirm header="Confirmación"
										message="¿Está seguro de eliminar el registrador seleccionado?"
										icon="ui-icon-alert" />
								</p:commandLink>
								<br/>
								<p:commandLink oncomplete="muestraDialogoAmpliacion();"
								rendered="${!responsableListadoService.perfilResponsable and (responsable.idEstadoResponsable eq '2' or responsable.idEstadoResponsable eq '3') and responsable.censo.estadoRegistro eq 'S'}"
									update=":formAmpliacion"
									value="Ampliar Reg.Direc."
									actionListener="#{responsableListadoService.seleccionaAmpliaRegistroDirectivo(responsable)}">
									<f:setPropertyActionListener value="#{responsable}" target="#{responsableListadoService.responsable}" />
								</p:commandLink>
							</c:if>
							<c:if test="#{responsableListadoService.soloConsulta}">
								<h:link id="responsable" 
									value="Ver"
									outcome="responsables_registro">
									<f:param name="responsable_id"	value="#{responsable.idResponsable}" />
								</h:link>
							</c:if>
						</p:column>
						<f:facet name="footer">
						&nbsp;
						<c:if test="#{responsableListadoService.listaResponsables.size() > 0}">
						<c:if test="#{!responsableListadoService.soloConsulta}">
							<div style="float: left; border: 0px solid #222; background-color: transparent">
									<p:commandButton styleClass="btn btn-success" 
									rendered="#{responsableListadoService.cboEstado eq '1' and responsableListadoService.intCantidad ne '0' and responsableListadoService.censo.estadoCensoId eq '2'}"
										value="Informar Habilitación" update="singleDT :form:messages"
										actionListener="#{responsableListadoService.informarResponsables}">
										<p:confirm header="Confirmación"
											message="¿Está seguro de Habilitar los responsables seleccionados?"
											icon="ui-icon-alert" />
									</p:commandButton>
								<p:commandButton styleClass="btn btn-success" 
										value="Ampliar Registro de Directivos"
										oncomplete="muestraDialogoAmpliacion();"
										update=":formAmpliacion"
										rendered="#{(responsableListadoService.cboEstado eq '2' or responsableListadoService.cboEstado eq '3') and responsableListadoService.cboCenso ne '-1' and !responsableListadoService.perfilResponsable }"
										actionListener="#{responsableListadoService.ampliarRegistroDirectivos}">
									</p:commandButton>
							</div>
							</c:if>
							<div style="clear: both;"></div>
							</c:if>
						</f:facet>
					</p:dataTable>	
						
				</h:form>
			</div>
		</div>
		<p:confirmDialog global="true" showEffect="fade"
			hideEffect="fade" closeOnEscape="true" rendered="true" width="30%">
			<p:commandButton value="Si" type="button"
				styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
			<p:commandButton value="No" type="button"
				styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
		</p:confirmDialog>
		
		<p:dialog width="285" widgetVar="ampliacionDialogo" modal="true" showEffect="fade" hideEffect="fade" resizable="false" closable="false">
			<h:form id="formAmpliacion" >
				<p:messages id="messagesAmpliacion" redisplay="false" />
				<div class="row no-gutter">
					<div class="col-sm-12 form-group">
						<p:outputLabel id="lblOpcion" value="Seleccione Fecha de Ampliación" />
						<p:calendar id="txtFechaAmp" value="#{responsableListadoService.txtFechaFinHabExt}" pattern="dd/MM/yyyy" disabled="true" />
						<p:calendar id="calFecHaAmp" value="#{responsableListadoService.txtFechaFinHabExt}" 
							mode="inline"
							required="true" locale="es" navigator="true" mindate="#{responsableListadoService.txtFechaFinHabExtValida}"
							requiredMessage="Seleccione Fecha de Ampliación." disabledWeekends="true">
							<p:ajax event="dateSelect" update="txtFechaAmp" />
						</p:calendar>
					</div>
				</div>
				<div class="btnAction row no-gutter">
					<div class="text-right">
						<p:commandButton id="cancelOpcion" styleClass="btn btn-success"
							value="Cerrar" oncomplete="PF('ampliacionDialogo').hide();" widgetVar="cancelarAmpliacion" 
							icon="fa fa-undo" iconPos="right" />
						<p:commandButton id="addOpcion" styleClass="btn btn-success"
							update="messagesAmpliacion" value="Grabar" 
							actionListener="#{responsableListadoService.ampliarRegistroDirectivo}" 
							onclick="jQuery('#formAmpliacion\\:messagesAmpliacion').fadeOut();PF('cancelarAmpliacion').disable();PF('grabarAmpliacion').disable();" widgetVar="grabarAmpliacion"
							oncomplete="PF('cancelarAmpliacion').enable();PF('grabarAmpliacion').enable();"
							icon="fa fa-floppy-o" iconPos="right">
							<p:confirm header="Confirmación"
										message="¿Está seguro de ampliar la fecha de registro de directivos a los responsables seleccionados?"
										icon="ui-icon-alert" />
						</p:commandButton>
					</div>
				</div>
			</h:form>
		</p:dialog>
		
	</ui:define>
	<ui:define name="script">
	</ui:define>
</ui:composition>